package com.zone.sdk.common.http.apimock;

import android.content.Context;

import com.zone.sdk.common.http.apimock.data.MockDataManager;


public final class ApiMock {

    private static boolean isMock = false;
    
    private ApiMock() {
    }

    /**
     * 初始化mock数据源
     * @param context
     * @param fileName  assets文件夹下文件名称
     */
    public static void init(boolean isMock, Context context, String fileName) {
        ApiMock.isMock = isMock;
        MockDataManager.get().init(context.getApplicationContext(), fileName, null);
    }
    /**
     * 初始化mock数据源
     * @param context
     * @param fileName  assets文件夹下文件名称
     * @param mockDataUrl  远程mockdata文件地址
     */
    public static void init(boolean isMock, Context context, String fileName, String mockDataUrl) {
        ApiMock.isMock = isMock;
        MockDataManager.get().init(context.getApplicationContext(), fileName, mockDataUrl);
    }

    public static boolean isMock(){
        return isMock;
    }

//    public static Retrofit createMockRetrofit(String host) {
////        Gson gson = new GsonBuilder()
////                .setLenient()
////                .create();
//        Retrofit retrofit = new Retrofit.Builder()
//                .baseUrl(host)
//                .client(new OkHttpClient.Builder()
//                        .addInterceptor(new MockInterceptor())
//                        .build())
////                .addConverterFactory(GsonConverterFactory.create(gson))
//                .addConverterFactory(FastJsonConverterFactory.create())
//                .addCallAdapterFactory(RxJava2CallAdapterFactory.create())
//                .build();
//        return retrofit;
//    }
//
//    /**
//     * @param baseUrl  api的baseUrl
//     * @param apiClass 对应service类型
//     * @return  所创建的对应service
//     */
//    public static  <T> T getApiService(String baseUrl, Class<T> apiClass) {
//        saveBaseUrl(baseUrl);
//        return createMockRetrofit(baseUrl).create(apiClass);
//    }
//
//    /**
//     * 需要设置baseUrl或者使用默认url
//     * @param apiClass 对应service类型
//     * @return  所创建的对应service
//     */
//    public static  <T> T getApiService(Class<T> apiClass) {
//        return createMockRetrofit(MockUtil.getBaseUrl()).create(apiClass);
//    }

//    private static void saveBaseUrl(String baseUrl) {
//        if (TextUtils.isEmpty(baseUrl)){
//            return;
//        }
//        SharedPreferences mPreferences = PreferenceManager.getDefaultSharedPreferences(MockDataManager.get().getContext().getApplicationContext());
//        mPreferences.edit().putString(KEY_MOCK_API_BASEURL,baseUrl).commit();
//    }

}
